home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / umich / tex / tex31 / inputs.lzh / slitex.tex < prev    next >
Text File  |  1989-06-13  |  25KB  |  722 lines

  1. % SLITEX VERSION 2.09 <8 Jun 1988>
  2. % Copyright (C) 1986 by Leslie Lamport
  3.  
  4. \everyjob{\typeout{SliTeX Version 2.09 <8 Jun 1988>}}
  5. \immediate\write10{SliTeX Version 2.09 <8 Jun 1988>}
  6.  
  7. % NOTES FOR DEFINING FONTS AND STYLES FOR SLIDES
  8. %   Every font definition -- \rm, \it, etc. must \def\@currfont to itself.
  9. %   Every size definition such as \normalsize is defined to be
  10. %          \@normalsize
  11. %          \def\@currsize{\@normal}\rm 
  12. %          commands to set:
  13. %             \baselineskip 
  14. %             \lineskip
  15. %             the ...displayskip and ...displayshortskip parameters
  16. %             \strutbox
  17. %             \parskip and \@parskip
  18. %   where \@normal makes all the font definitions.
  19. %   \@normal must test the switch @visible and define its 
  20. %   fonts equal to the visible or the invisible versions accordingly.
  21.  
  22.  \message{hacks,}
  23. %      **********************************************
  24. %      *          HACKS FOR SLIDE MACROS            *
  25. %      **********************************************
  26. % The macro \@getend{FOO} defines \@arg to equal all the text up to
  27. % but excluding the next \end{FOO}, which it gobbles up.  
  28. % Note that the characters in this text will all be interpreted with
  29. % their current category codes, so any embedded environments (such as
  30. % an example environment) won't work right.  NOTE--GOBBLES
  31. % THE \fi's -- MUST BE MODIFIED LIKE \@gobbletoend BELOW.
  32.  
  33.  
  34. %\def\@getend#1{\def\@arg{}\def\@argend{#1}\@addtoarg}
  35. %
  36. %\long\def\@addtoarg#1\end#2{\tokens{#1}%
  37. %\long\edef\@x@add##1\@@{\long\def\@arg{##1\the\tokens}}%
  38. %\expandafter\@x@add\@arg\@@\def\@x@a{#2}\ifx\@x@a\@argend\else
  39. %\tokens{\end{#2}}\long\edef\@x@add##1\@@{\long\def\@arg{##1\the\tokens}}%
  40. %\expandafter\@x@add\@arg\@@\@addtoarg\fi}
  41.  
  42. % \@gobbletoend{FOO} gobbles all text up to and including the
  43. % next \end{FOO}.  Must be used inside an \if, right before the \fi.
  44.  
  45. \def\@gobbletoend#1{\def\@argend{#1}\@ggobtoend}
  46.  
  47. \long\def\@ggobtoend#1\end#2{\@xfi\def\@x@a{#2}%
  48. \ifx\@x@a\@argend\else\@ggobtoend\fi}
  49. \def\@xfi{\fi}
  50.  
  51.  \message{slides,}
  52. %      **********************************************
  53. %      *               SLIDE  MACROS                *
  54. %      **********************************************
  55. % Switches:
  56. % @bw      : true if making black and white slides
  57. % @visible : true if visible output to be produced.
  58. % @makingslides : true if executing \blackandwhite or \colorslides
  59.  
  60. \newif\if@bw
  61. \newif\if@visible
  62. \newif\if@onlyslidesw \@onlyslideswfalse
  63. \newif\if@onlynotesw  \@onlynoteswfalse
  64. \newif\if@makingslides
  65.  
  66. % Counters
  67. %  slide   = slide number
  68. %  overlay = overlay number for a slide
  69. %  note    = note number for a slide
  70.  
  71. \countdef\c@slide=0 \c@slide=0
  72. \def\cl@slide{}
  73. \countdef\c@overlay=1 \c@overlay=0
  74. \def\cl@overlay{}
  75. \countdef\c@note=2 \c@note=0
  76. \def\cl@note{}
  77.  
  78.  
  79. \@addtoreset{overlay}{slide}
  80. \@addtoreset{note}{slide}
  81.  
  82. % Redefine page counter to some other number.
  83. % The page counter will always be zero except when putting out an
  84. % extra page for a slide, note or overlay.
  85. %
  86. \@definecounter{page} 
  87. \@addtoreset{page}{slide}
  88. \@addtoreset{page}{note}
  89. \@addtoreset{page}{overlay}
  90.  
  91.  
  92. \def\theslide{\@arabic\c@slide}
  93. \def\theoverlay{\theslide-\@alph\c@overlay}
  94. \def\thenote{\theslide-\@arabic\c@note}
  95.  
  96. % \@setlimits \LIST \LOW \HIGH 
  97. %
  98. %    Assumes that \LIST = RANGE1,RANGE2,...,RANGEn  (n>0)
  99. %    Where RANGEi = j or j-k.
  100. %    
  101. %    Then \@setlimits  globally sets
  102. %        (i) \LIST := RANGE2, ... , RANGEn
  103. %       (ii) \LOW  := p
  104. %      (iii) \HIGH := q
  105. %   where either RANGE1 = p-q   or  RANGE1 = p  and  q=p.
  106.  
  107. \def\@sl@getargs#1-#2-#3\relax#4#5{\xdef#4{#1}\xdef#5{#2}}
  108. \def\@sl@ccdr#1,#2\relax#3#4{\xdef#3{#1-#1-}\xdef#4{#2}}
  109.  
  110. \def\@setlimits #1#2#3{\expandafter\@sl@ccdr#1\relax\@sl@gtmp #1%
  111. \expandafter\@sl@getargs\@sl@gtmp\relax#2#3}
  112.  
  113. % \onlyslides{LIST} ::=
  114. %  BEGIN
  115. %    @onlyslidesw := true
  116. %    \@doglslidelist :=G LIST,999999,999999
  117. %   if @onlynotesw = true
  118. %     else @onlynotesw := true
  119. %          \@doglnotelist :=G LIST,999999,999999
  120. %   fi
  121. %   message: Only Slides LIST
  122. %  END
  123.  
  124. \def\onlyslides#1{\@onlyslideswtrue\gdef\@doglslidelist{#1,999999,999999}%
  125. \if@onlynotesw \else \@onlynoteswtrue\gdef\@doglnotelist{999999,999999}\fi
  126. \typeout{Only Slides #1}}
  127.  
  128. % \onlynotes{LIST} ::=
  129. %  BEGIN
  130. %    @onlynotesw := true
  131. %    \@doglnotelist :=G LIST,999999,999999
  132. %   if @onlyslidesw = true
  133. %     else \@onlyslidesw := true
  134. %          \@doglslidelist{999999,999999}
  135. %   fi
  136. %   message: Only Notes LIST
  137. %  END
  138.  
  139. \def\onlynotes#1{\@onlynoteswtrue\gdef\@doglnotelist{#1,999999,999999}%
  140. \if@onlyslidesw \else \@onlyslideswtrue\gdef\@doglslidelist{999999,999999}\fi
  141. \typeout{Only Notes #1}}
  142.  
  143.  
  144. % \blackandwhite #1  ::=
  145. %    \newpage
  146. %    page counter := 0
  147. %    @bw := T
  148. %    @visible := T
  149. %    if @onlyslidesw = true
  150. %      then  \@doslidelist := \@doglslidelist
  151. %            \@setlimits\@doslidelist\@doslidelow\@doslidehigh
  152. %    fi
  153. %    if @onlynotesw = true
  154. %      then  \@donotelist := \@doglnotelist
  155. %            \@setlimits\@donotelist\@donotelow\@donotehigh
  156. %    fi
  157. %    \normalsize    % Note, this sets font to \rm , which sets
  158. %                     % \@currfont to \rm
  159. %    counter slidenumber := 0
  160. %    counter note        := 0
  161. %    counter overlay     := 0
  162. %    @makingslides       := T
  163. %    input #1
  164. %    @makingslides       := F
  165.  
  166. \def\blackandwhite#1{\newpage\setcounter{page}{0}\@bwtrue\@visibletrue
  167. \if@onlyslidesw \xdef\@doslidelist{\@doglslidelist}%
  168. \@setlimits\@doslidelist\@doslidelow\@doslidehigh\fi
  169. \if@onlynotesw \xdef\@donotelist{\@doglnotelist}%
  170. \@setlimits\@donotelist\@donotelow\@donotehigh\fi
  171. \normalsize\setcounter{slide}{0}\setcounter{overlay}{0}%
  172. \setcounter{note}{0}\@makingslidestrue\input #1\@makingslidesfalse}
  173.  
  174.  
  175. % \colors{COLORS} ::=
  176. %  for \@colortemp := COLORS
  177. %     do \csname \@colortemp \endcsname == \@color{\@colortemp} od
  178. %  if \@colorlist = empty
  179. %     then \@colorlist := COLORS
  180. %     else \@colorlist := \@colorlist , COLORS
  181. %  fi
  182. %
  183. \def\colors#1{\@for\@colortemp:=#1\do{\expandafter
  184.   \xdef\csname\@colortemp\endcsname{\noexpand\@color{\@colortemp}}}\ifx
  185.   \@colorlist\@empty \gdef\@colorlist{#1}
  186.     \else \xdef\@colorlist{\@colorlist,#1}\fi}
  187.  
  188. \def\@colorlist{}
  189.  
  190. % \colorslides{FILE} ::=
  191. %    \newpage
  192. %    page counter := 0
  193. %    @bw := F
  194. %    for \@currcolor := \@colorlist
  195. %      do  @visible := T
  196. %          if @onlyslidesw = true
  197. %            then  \@doslidelist := \@doglslidelist
  198. %                  \@setlimits\@doslidelist\@doslidelow\@doslidehigh
  199. %          fi
  200. %          if @onlynotesw = true
  201. %            then  \@donotelist := \@doglnotelist
  202. %                  \@setlimits\@donotelist\@donotelow\@donotehigh
  203. %          fi
  204. %          \normalsize
  205. %          counter slide := 0
  206. %          counter overlay := 0
  207. %          counter note    := 0
  208. %          type message
  209. %          generate color layer output page
  210. %          @makingslides := T
  211. %          input #1
  212. %          @makingslides := F
  213. %      od
  214.  
  215. \def\colorslides#1{\newpage\setcounter{page}{0}\@bwfalse
  216. \@for\@currcolor:=\@colorlist\do
  217. {\@visibletrue
  218. \if@onlyslidesw \xdef\@doslidelist{\@doglslidelist}%
  219. \@setlimits\@doslidelist\@doslidelow\@doslidehigh\fi
  220. \if@onlynotesw \xdef\@donotelist{\@doglnotelist}%
  221. \@setlimits\@donotelist\@donotelow\@donotehigh\fi
  222. \normalsize\setcounter{slide}{0}\setcounter{overlay}{0}%
  223. \setcounter{note}{0}\typeout{color \@currcolor}%
  224. \newpage
  225. \begin{huge}
  226. \begin{center}
  227. COLOR LAYER\\[.75in]
  228. \@currcolor
  229. \end{center}
  230. \end{huge}
  231. \newpage
  232. \@makingslidestrue
  233. \input #1
  234. \@makingslidesfalse}}
  235.  
  236.  
  237. % \slide COLORS ::=
  238. %  BEGIN
  239. %   \stepcounter{slide}   
  240. %   \@slidesw :=G T
  241. %   if @onlyslidesw = true                     % set \@slidesw = T iff page to
  242. %     then                                   % be output
  243. %       while \c@slide > \@doslidehigh
  244. %          do  \@setlimits\@doslidelist\@doslidelow\@doslidehigh  od
  245. %       if \c@slide < \@doslidelow
  246. %         then \@slidesw := F
  247. %       fi
  248. %   fi
  249. %   if \@slidesw = T
  250. %      then \@slidesw :=G F
  251. %           \begingroup                           
  252. %              if @bw = true  
  253. %                then  \@slidesw :=G T   
  254. %                else \@color{COLORS}
  255. %                     \if@visible then \@slidesw :=G T \fi
  256. %              fi
  257. %            \endgroup
  258. %  fi
  259. %  if \@slidesw = T
  260. %